import util from './utils'
// 定义请求地址

// 封装请求方法
export default class Request {
    http(param) {
        // 请求参数
        const token = util.getToken()
        var url = param.url,
            method = param.method,
            header = {
                'Content-Type': "application/x-www-form-urlencoded",
                'Token': 'Bearer ' + token,
            },
            contentType = param.contentType,
            data = param.data || {},
            //Json格式 // param.data  url拼接
            hideLoading = param.hideLoading || false,
            requestUrl = 'http://192.168.1.1' + url;
        // requestUrl = '/api' + url;
        // method = method.toUpperCase(); //小写改为大写
        if (contentType == "json") {
            header = {
                'Content-Type': "application/json",
                'Token': token,
            };

        } else if (method == "form") {
            header = {
                'Content-Type': "application/x-www-form-urlencoded",
                'Token': token,
            };
        }
        // try {
        //     if (token) {
        //         header = {
        //             'Token': 'Bearer ' + token,
        //             'Content-Type': 'application/json'
        //         };
        //     } else { // 不存在token 跳转至登录
        //         uni.navigateTo({
        //             url: '/pages/login/login'
        //         });
        //         return;
        //     }
        // } catch (err) {
        //     console.log(err)
        // }
        if (!hideLoading) {
            uni.showLoading({
                title: '加载中...'
            });
        }
        // 返回promise
        return new Promise((resolve, reject) => {
            // 请求
            uni.request({
                url: requestUrl,
                data: data,
                method: method,
                header: header,
                contentType: contentType,
                success: (res) => {
                    if (res.statusCode == 200) {
                        if (res.data.status === 400) {
                            uni.showToast({
                                title: res.data.message || "请求失败，请联系管理员",
                                icon: 'none'
                            });
                        } else if (res.data.status === 401) {
                            uni.showToast({
                                title: res.data.message || "请求失败，请联系管理员",
                                icon: 'none'
                            });
                            // uni.navigateTo({  //小程序上线后放开
                            //     url: '/pages/login/login'
                            // })
                        }
                        resolve(res.data);
                    } else {
                        // if (res.statusCode && res.statusCode != 200) {
                        //     uni.showToast({
                        //         title: res.data.message,
                        //         icon: 'none'
                        //     });
                        //     return;
                        // }
                    }
                },
                //请求失败
                fail: (e) => {
                    uni.showToast({
                        title: e.data.message,
                        icon: 'none'
                    });
                    resolve(e.data);
                },
                //请求完成
                complete(res) {
                    //隐藏加载
                    uni.hideLoading();
                    resolve(res);
                    return;
                }
            })


        })

    }
}